package com.zlm.Stream;

import java.util.ArrayList;
import java.util.Collections;

/**
 * @author 13026
 */
public class Stream_center_function_demo {
    /*
     * Stream
     *   中间方法
     *   注意：中间方法返回新流，原流只能用一次，建议链式编程，修改Stream中数据，不会影响原有集合/数组中数据
     *       Stream<T> filter(Predicate<? super T> predicate)  过滤
     *       Stream<T> limit(long maxSize)                     获取前几个元素
     *       Stream<T> skip(long n)                            跳过前几个元素
     *       Stream<T> distinct()                              元素去重，依赖hashcode和equals方法
     *       static <T> Stream<T> concat(Stream a,Stream b)    合并a和b为一个流
     *       Stream<R> map(Function<T,R> mapper)               转换流中数据类型
     * */
    public static void main(String[] args) {
        // filter
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, "1", "2");
        System.out.println(list.stream().filter("2"::equals));

        // limit
        ArrayList<String> list2 = new ArrayList<>();
        Collections.addAll(list2, "1", "2");
        System.out.println(list2.stream().limit(1));

        // skip
        ArrayList<String> list3 = new ArrayList<>();
        Collections.addAll(list3, "1", "2");
        System.out.println(list3.stream().skip(1));

        // map
        ArrayList<String> list4 = new ArrayList<>();
        Collections.addAll(list4, "1", "2");
        list4.stream().map(item -> {
            return Integer.parseInt(item);
        });
    }
}
